package com.otv.managed.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import org.springframework.dao.DataAccessException;
import com.otv.encargado.service.IEncargadoService;
import com.otv.model.Encargado;



@ManagedBean(name="encargadoMB")
@RequestScoped
public class EncargadoManagedBean implements Serializable {
	
	private static final long serialVersionUID = 1L;
	private static final String SUCCESS = "success";
	private static final String ERROR   = "error";
	
	//Spring Service is injected...
	@ManagedProperty(value="#{EncargadoService}")
	IEncargadoService encargadoService;
	
	List<Encargado> encargadoList;
	
	private int id;
	private String rut;
	private String digitoVerificador;
	private String numeroTelefono;
	private String direccion;
	private String descripcion;


	
	

	public String addEncargado () {
		try {
			Encargado encargado = new Encargado();
			encargado.setId(getId());
			encargado.setRut(getRut());
			encargado.setDescripcion(getDescripcion());
			encargado.setDigitoVerificador(getDigitoVerificador());
			encargado.setDireccion(getDireccion());
			encargado.setTelefono(getNumeroTelefono());

			getEncargadoService().addEncargado(encargado);

			return SUCCESS;
		} catch (DataAccessException e) {
			e.printStackTrace();
		} 	
		
		return ERROR;
	}
	
	/**
	 * Reset Fields
	 * 
	 */
	public void reset() {
		this.setId(0);
		this.setDescripcion("");
		this.setDigitoVerificador("");
		this.setDireccion("");
		this.setNumeroTelefono("");
		this.setRut("");
	}

	
	public IEncargadoService getEncargadoService() {
		return encargadoService;
	}

	public void setEncargadoService(IEncargadoService encargadoService) {
		this.encargadoService = encargadoService;
	}

	public List<Encargado> getEncargadoList() {
		this.encargadoList = new ArrayList<Encargado>();
		encargadoList.addAll(this.getEncargadoService().getEncargados());
		return encargadoList;
	}

	public void setEncargadoList(List<Encargado> encargadoList) {
		this.encargadoList = encargadoList;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getRut() {
		return rut;
	}

	public void setRut(String rut) {
		this.rut = rut;
	}

	public String getDigitoVerificador() {
		return digitoVerificador;
	}

	public void setDigitoVerificador(String digitoVerificador) {
		this.digitoVerificador = digitoVerificador;
	}

	public String getNumeroTelefono() {
		return numeroTelefono;
	}

	public void setNumeroTelefono(String numeroTelefono) {
		this.numeroTelefono = numeroTelefono;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	

	
	
	
	
}